<template>
	<div @click.stop.prevent="" class="strcture_item_wrap">
		
		<div class="strcture_item" @click.stop.prevent='toggle($event,item,index)' @dblclick.stop.prevent='dbtoNewChats(item)'>
			<img v-if="item.FID" :src="item.open?'static/image/home/filecheckicon.png':'static/image/home/fileicon.png'">
			<div v-else :class="{state_leave:item.status==3,state_busy:item.status==4,state_input_corner:item.status==5,state_meeting:item.status==6}">
				<img :onerror="defaultImg" :class="{gray:item.status==7}" class="strcture_head img-border"
					:src="!$isNull(item.HEAD)?(`${$store.state.headPathUrl}${item.ID}${item.HEAD}.PNG`):`static/image/home/person_${item.SEX==2?2:1}.png`">
				
			</div>
			<span :class='{marginLeft:!isOrg || !isHave}'>{{item.LEABLE + (item.CN ? '(' + (item.online?item.online:0) + '/' + item.CN + ')' : '')}}</span>
		</div>
		<!-- 新增默认打卡第一级目录 -->
		<template v-if="!item.openClose">
			<my-tree v-for='(cell,tag) in item.ARR' :item='cell' :key="(item.FID||item.ID)+tag"></my-tree>
		</template>
		<ul v-show='item.open' v-if='isHave&&item.child'>
			<my-tree v-for='(cell,tag) in item.child' :item='cell' :key="(item.FID||item.ID)+tag"></my-tree>
		</ul>
	</div>
</template>

<script>
import { getUserInfo_axios, getGroup } from "@/api/home";
import tools from "@/utils/tools";
import { getMyDepartments } from "@/api/departmentList";
import { mapState } from "vuex";
export default {
  name: "myTree",
  props: [
    "item",
    "index",
    "clickIntervale",
    "sqlTable",
    "viewTarget",
    "viewTargetShow",
    "currentStructureName",
    "currentStructureIndex"
  ],
  data() {
    return {
      isHave: false,
      open: false,
      isOrg: false,
      personsExitsArr: [],
      personsCheckArr: [],
      list: [], // 总的数组，为排序而生
      defaultImg:
        'this.src="' + require("../../../static/image/home/person_1.png") + '"'
    };
  },
  watch: {
    updateUserStatus() {
      if (this.item.NO == this.updateUserStatus.userId) {
        this.item.status = this.updateUserStatus.status;
        this.$forceUpdate();
      }
    }
  },
  computed: {
    ...mapState(["updateUserStatus"])
  },
  methods: {
    toggle(event, item, index) {
    //   console.log(item, 52);
      if (item.NO) {
        window.tonextstr(event, item, index);
      } else if (item.FID) {
        // 点击永远关闭默认打开的目录
        this.$set(item, "openClose", true);
        this.$set(item, "open", !item.open);
        let isTrue = item.checked;
        let isExits = item.isExits;
        // 点击重新获取数据,考虑到可能需及时获取在线状态,取消注释只获取一次 loading_department
        // if(!item.child) {
        if (item.open) {
          this.$startLoading(".loading_department");
          getMyDepartments({
            deptid: item.FID,
            isOrg: 1
          }).then(msg => {
            this.$endLoading();
            msg = msg.data;
            // console.log(msg,'我的部门');
            for (let i in msg) {
              msg[i].checked = isTrue;
              if (this.personsExitsArr.length > 0) {
                for (let t in this.personsExitsArr) {
                  if (
                    this.personsExitsArr[t].ID == msg[i].NO ||
                    this.personsExitsArr[t].ID == msg[i].FID
                  ) {
                    msg[i].isExits = true;
                  }
                }
              }
              if (this.personsCheckArr.length > 0) {
                for (let t in this.personsCheckArr) {
                  if (
                    this.personsCheckArr[t].value == msg[i].NO ||
                    this.personsCheckArr[t].value == msg[i].FID
                  ) {
                    msg[i].checked = true;
                  }
                }
              }
            }
            this.$set(item, "child", msg);
            this.list.push(msg);
            // 新增下载头像
            window.loadingUserList(msg);
            this.$forceUpdate();
          });
        }
      }
    },

    // //主页组织架构选择下一项
    // tonextstr(e, item, index) {
    //   if (this.clickIntervale) {
    //     window.clearTimeout(this.clickIntervale);
    //     this.$emit("update:clickIntervale", null);
    //     // this.clickIntervale = null;
    //   }
    //   this.clickIntervale = setTimeout(() => {
    //     this.$emit("getCurCoor", e);
    //     // this.getCurCoor(e);
    //     if (item.NO && item.NO != this.myInfo.id) {
    //       let info = tools.operationalDatabase(
    //         `SELECT * FROM ${this.sqlTable.userInformation} WHERE id='${
    //           item.NO
    //         }'`,
    //         1
    //       );
    //       getUserInfo_axios({
    //         userid: item.NO
    //       })
    //         .then(res => {
    //           if (res.result == 200) {
    //             this.$emit("update:viewTarget", res.data);
    //             // this.viewTarget = res.data;
    //             this.$emit("isLinkman");
    //             // this.isLinkman();
    //             this.$emit("update:viewTargetShow", true);
    //             // this.viewTargetShow = true;
    //             let msg = res.data;
    //             let job = msg.jobtitle == null ? "" : msg.jobtitle;
    //             let depart =
    //               msg.departmentname == null ? "" : msg.departmentname;
    //             let head = info.list[0] ? info.list[0].head : "";
    //             if (head != msg.head && msg.head != null) {
    //               // this.$downLoad("api/v1/oim/head/user/download.do", head, (data) => {
    //               // 	console.log('下载结果')
    //               // 	console.log(data)
    //               // }, (data) => {
    //               // 	console.log('error')
    //               // 	console.log(data)
    //               // })
    //             } else {
    //               tools.operationalDatabase(
    //                 `REPLACE INTO ${
    //                   this.sqlTable.userInformation
    //                 }(id,name,gender,head,account,jobtitle,department,isAdmin,radioOf,groupOf,nickname) VALUES ('${
    //                   msg.id
    //                 }','${msg.name}','${msg.gender}','${msg.head}','${
    //                   msg.account
    //                 }','${job}','${depart}','${msg.isAdmin}','${
    //                   msg.radioOf
    //                 }','${msg.groupOf}','${msg.nickname}');`
    //               );
    //             }
    //             // 新增下载头像
    //             this.$emit("downLoadHeadPath", this.viewTarget);
    //             // this.downLoadHeadPath(this.viewTarget);
    //           } else {
    //             console.log(res.result);
    //           }
    //         })
    //         .catch(res => {
    //           if (info.list[0]) this.$emit("update:viewTarget", info.list[0]);
    //           // this.viewTarget = info.list[0];
    //           // 新增下载头像
    //           this.$emit("downLoadHeadPath", this.viewTarget);
    //           //   this.downLoadHeadPath(this.viewTarget);
    //         });
    //     } else if (item.FID) {
    //       this.$emit("update:viewTarget", null);
    //       //   this.viewTarget = null;
    //       this.$emit("update:viewTargetShow", false);
    //       //   this.viewTargetShow = false;
    //       this.currentStructureName.push(item);
    //       this.$emit(
    //         "update:currentStructureIndex",
    //         this.currentStructureIndex++
    //       );
    //       //   this.currentStructureIndex++;
    //       this.getNextCurNext(item.FID);
    //     } else if (item.NO == this.myInfo.id) {
    //       this.$emit("update:viewTargetShow", false);
    //       //   this.viewTargetShow = false;
    //     }
    //   }, 300);
    // },
    getNextCurNext(id) {
      getGroup({
        fid: id
      }).then(res => {
        this.currentStructureList.push(res.data);
        this.$emit("viewUpdate");
        // this.$forceUpdate();
      });
      //   this.getStructureList(
      //     {
      //       fid: id
      //     },
      //     res => {
      //       this.currentStructureList.push(res.data);
      //       this.$forceUpdate();
      //     }
      //   );
    },
    dbtoNewChats(item) {
      console.log(item, 99);
      window.dbtoNewChats(item, false);
    }
  },
  created() {
	  //新增外壳方法抽离
    // window.tonextstr = this.tonextstr;
    this.isHave = this.item.FID ? true : false;
  }
};
</script>
